1
네임스페이싱에서 강력한 모듈 시스템으로
AI020Lesson 6
00:00

초기 자바스크립트 개발 단계에서는 네임스페이스 오염 매우 큰 걸림돌이었습니다. 관련 없는 코드가 하나의 전역 변수 이름 집합을 공유할 경우 예측할 수 없는 충돌이 발생합니다. 현대적인 설계는 구조 없는 태도에서 격리된 모듈 시스템으로 변화하고 있습니다.

1. 기능적 격리 (즉시 실행 함수 표현식)

코드를 즉시 실행 함수 표현식 (IIFE)로 감싸면 개인 영역을 생성합니다. 예를 들어 names 변수들은 함수 내부에 갇혀 있으며 전역 환경에서는 접근할 수 없습니다.

(function() {
var internal = "비밀";
console.log(internal);
})();

2. 객체 기반 인터페이스

외부 세계에 기능을 제공하기 위해 모듈은 그 자체의 공개 인터페이스로 작동하는 객체를 반환합니다. 이를 통해 관련된 메서드(예: namenumber)를 하나의 재사용 가능한 전역 변수 아래에 묶습니다.

개인 영역[names 배열]인터페이스name(), number()

3. 내보내기 패턴

고도화된 변형은 exports 객체를 IIFE에 전달하는 것입니다. 이 방식은 모듈이 자신의 API를 특정 네임스페이스 대상에 직접 연결할 수 있게 해주며, 모듈 사용 방식에 유연성을 제공합니다.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>